package com.example.mybatisplus.common.utls;

import com.example.mybatisplus.model.domain.Admin;
import com.example.mybatisplus.model.domain.HUser;
import com.example.mybatisplus.model.domain.User;
import com.example.mybatisplus.model.dto.HUserInfoDTO;
import com.example.mybatisplus.model.dto.UserInfoDTO;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class SecurityUtils {
    /**
     * 获取当前用户
     *
     * @return
     */
    public static Admin getCurrentUserInfo() {
        Admin userInfo = SessionUtils.getCurrentUserInfo();
        //模拟登录
        if (userInfo == null) {
            userInfo = new Admin();
            userInfo.setLoginName("模拟");
        }

        return userInfo;
    }
    public static HUserInfoDTO hUserInfoDTO(){
        HUser loginUser =SessionUtils.getLoginHUer();
        HUserInfoDTO userInfoDTO =new HUserInfoDTO();
        if (loginUser==null){
            userInfoDTO.setId(1l);
            userInfoDTO.setUsername("Test用户");
            userInfoDTO.setUserType(1);
        }else {
            userInfoDTO.setId(loginUser.getId());
            userInfoDTO.setUsername(loginUser.getUsername());
            userInfoDTO.setPassword(loginUser.getPassword());
            userInfoDTO.setIdNum(loginUser.getIdNum());
            userInfoDTO.setPhoneNum(loginUser.getPhoneNum());
            userInfoDTO.setUserType(loginUser.getUserType());
        }
        return userInfoDTO;
    }
    public static UserInfoDTO getUserInfo() {
//        Admin userInfo = SessionUtils.getCurrentUserInfo();
        User loginUser = SessionUtils.getLoginUser();

        UserInfoDTO userInfoDTO = new UserInfoDTO();
        //模拟登录
        if (loginUser == null) {

            userInfoDTO.setId(1L);
            userInfoDTO.setName("模拟用户");
            userInfoDTO.setUserType(1);
        } else {
            //已登录
            userInfoDTO.setId(loginUser.getId());
            userInfoDTO.setName(loginUser.getUsername());
            userInfoDTO.setUserType(loginUser.getUserType());
        }
        return userInfoDTO;
    }
}
